import request from '@/utils/request'

// 用户管理API
export const userAPI = {
  // 获取用户列表
  getUserList(params) {
    return request({
      url: '/users',
      method: 'get',
      params
    })
  },
  
  // 获取用户详情
  getUserDetail(id) {
    return request({
      url: `/users/${id}`,
      method: 'get'
    })
  },
  
  // 创建用户
  createUser(data) {
    return request({
      url: '/users',
      method: 'post',
      data
    })
  },
  
  // 更新用户
  updateUser(id, data) {
    return request({
      url: `/users/${id}`,
      method: 'put',
      data
    })
  },
  
  // 删除用户
  deleteUser(id) {
    return request({
      url: `/users/${id}`,
      method: 'delete'
    })
  }
}

// 票务管理API
export const ticketAPI = {
  // 获取票务列表
  getTicketList(params) {
    return request({
      url: '/tickets',
      method: 'get',
      params
    })
  },
  
  // 获取票务详情
  getTicketDetail(id) {
    return request({
      url: `/tickets/${id}`,
      method: 'get'
    })
  },
  
  // 创建票务
  createTicket(data) {
    return request({
      url: '/tickets',
      method: 'post',
      data
    })
  },
  
  // 更新票务
  updateTicket(id, data) {
    return request({
      url: `/tickets/${id}`,
      method: 'put',
      data
    })
  },
  
  // 删除票务
  deleteTicket(id) {
    return request({
      url: `/tickets/${id}`,
      method: 'delete'
    })
  }
}

// 活动管理API
export const eventAPI = {
  // 获取活动列表
  getEventList(params) {
    return request({
      url: '/events',
      method: 'get',
      params
    })
  },
  
  // 获取活动详情
  getEventDetail(id) {
    return request({
      url: `/events/${id}`,
      method: 'get'
    })
  },
  
  // 获取该活动下的票务列表
  getEventTickets(id) {
    return request({
      url: `/events/${id}/tickets`,
      method: 'get'
    })
  },
  
  // 创建活动
  createEvent(data) {
    return request({
      url: '/events',
      method: 'post',
      data
    })
  },
  
  // 更新活动
  updateEvent(id, data) {
    return request({
      url: `/events/${id}`,
      method: 'put',
      data
    })
  },
  
  // 上传活动海报（multipart/form-data）
  uploadPoster(id, formData) {
    return request({
      url: `/events/${id}/poster`,
      method: 'post',
      data: formData,
      headers: { 'Content-Type': 'multipart/form-data' }
    })
  },

  // 票务批量编辑（新增/更新/删除）
  updateTicketsBatch(id, payload) {
    return request({
      url: `/events/${id}/tickets/batch`,
      method: 'put',
      data: payload
    })
  },

  // 删除活动
  deleteEvent(id) {
    return request({
      url: `/events/${id}`,
      method: 'delete'
    })
  }
}

// 订单管理API
export const orderAPI = {
  // 获取订单列表
  getOrderList(params) {
    return request({
      url: '/orders',
      method: 'get',
      params
    })
  },
  
  // 获取订单详情
  getOrderDetail(id) {
    return request({
      url: `/orders/${id}`,
      method: 'get'
    })
  },
  
  // 更新订单状态
  updateOrderStatus(id, status) {
    return request({
      url: `/orders/${id}/status`,
      method: 'put',
      data: { status }
    })
  }
}

// 统计分析API
export const analyticsAPI = {
  // 获取仪表板统计数据
  getDashboardStats() {
    return request({
      url: '/analytics/dashboard',
      method: 'get'
    })
  },
  
  // 获取销售趋势数据
  getSalesTrend(params) {
    return request({
      url: '/analytics/sales-trend',
      method: 'get',
      params
    })
  },
  
  // 获取票务类型分布
  getTicketTypeDistribution() {
    return request({
      url: '/analytics/ticket-distribution',
      method: 'get'
    })
  },

  getRecentActivities() {
    return request({
      url: '/analytics/recent-activities',
      method: 'get'
    })
  }
}

// 认证API
export const authAPI = {
  // 管理员登录
  login(data) {
    return request({
      url: '/auth/admin/login',
      method: 'post',
      data
    })
  },
  
  // 获取管理员信息
  getAdminInfo() {
    return request({
      url: '/auth/admin/info',
      method: 'get'
    })
  },
  
  // 管理员登出
  logout() {
    return request({
      url: '/auth/admin/logout',
      method: 'post'
    })
  }
}